package com.maykk.stu_manager.controller;


import com.maykk.stu_manager.global.Student;
import com.maykk.stu_manager.model.StuModel;
import com.maykk.stu_manager.views.StuPage;

import java.sql.SQLException;
import java.util.ArrayList;

/**
 * @ClassName: StuController
 * @2 qa
 * : TODO 学生控制器层
 * @Author: MaykkStar@163.com
 */
public class StuController {
    private StuModel sm = new StuModel();

    /**
     * 欢迎菜单选择功能
     *
     * @param a 功能序号
     */
    public void action(int a) throws SQLException {
        switch (a) {
            case 1:
                // 查询学员
                int i = StuPage.SelPage();
                select(i);
                break;
            case 2:
                // 添加学员
                sm.addStu(StuPage.addStu());
                break;
            case 3:
                // 修改学员
                // 根据学号查找要修改的学生
                ArrayList<Student> updateStu = sm.findById(StuPage.inputId());
                // 输出查找到的学生
                if (!updateStu.isEmpty()) {
                    StuPage.showOutCome(updateStu);
                } else {
                    System.out.println("没有找到该学生");
                    break;
                }
                // 输入新的学生信息
                Student updateStuInfo = StuPage.addStu();
                // 执行修改
                StuPage.showUpdateOutCome(sm.updateStu(updateStu, updateStuInfo));
                // 根据新的学号查找学生
                StuPage.showOutCome(sm.findById(updateStuInfo.getId()));
                break;
            case 4:
                int deleteStuId = StuPage.inputId();
                if (sm.deleteStu(deleteStuId) > 0) {
                    System.out.println("删除成功");
                } else {
                    System.out.println("删除失败");
                }
                break;
            case 5:
                System.out.println("退出系统");
                System.exit(0);
        }
    }

    /**
     * @param a 功能序号
     * @throws SQLException SQl 异常
     */
    public void select(int a) throws SQLException {
        switch (a) {
            case 1:
                // 查询所有
                ArrayList<Student> stuList = sm.selectAll();
                StuPage.showOutCome(stuList);
                break;
            case 2:
                // 按学号查询
                StuPage.showOutCome(sm.findById(StuPage.inputId()));
                break;
            case 3:
                // 按姓名查询
                StuPage.showOutCome(sm.findByName(StuPage.inputName()));
                break;
            case 4:
                // 按性别查询
                StuPage.showOutCome(sm.findBySex(StuPage.inputSex()));
                break;
            case 5:
                // 按年龄查询
                StuPage.showOutCome(sm.findByAge(StuPage.inputAge()));
                break;
            case 6:
                // 按成绩查询
                StuPage.showOutCome(sm.findByScore(StuPage.inputScore()));
                break;
            case 7:
                // 按班级查询
                StuPage.showOutCome(sm.findByClass(StuPage.inputClass()));
                break;
        }
    }

}
